/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.beans;

import com.entidades.Usuarios;
import java.util.Date;
import javax.annotation.Resource;
import javax.ejb.Stateful;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.transaction.UserTransaction;

/**
 *
 * @author JAVIER
 */
@Named("cPri")
public class controlPrincipal {

    public controlPrincipal() {
    }
    
    @PersistenceContext 
    private EntityManager em;
    @Resource 
    private UserTransaction utx;
    
    public String prueba;
    public String pagCentro;
    
    public boolean esUsuario;
    public boolean esNegocio;
    public boolean esAdmin;

    //variables de control para verificar email
    public Integer uId;
    public Integer uNumAle;
    
        
    public boolean EmailValido;
 
    public boolean isEmailValido() {
        return EmailValido;
    }

    public void setEmailValido(boolean EmailValido) {
        this.EmailValido = EmailValido;
    }
    
    public Integer getuId() {
        return uId;
    }

    public void setuId(Integer uId) {
        this.uId = uId;
    }

    public Integer getuNumAle() {
        return uNumAle;
    }

    public void setuNumAle(Integer uNumAle) {
        this.uNumAle = uNumAle;
    }
    
    
    public boolean isEsUsuario() {
        return esUsuario;
    }

    public void setEsUsuario(boolean esUsuario) {
        this.esUsuario = esUsuario;
    }

    public boolean isEsNegocio() {
        return esNegocio;
    }

    public void setEsNegocio(boolean esNegocio) {
        this.esNegocio = esNegocio;
    }

    public boolean isEsAdmin() {
        return esAdmin;
    }

    public void setEsAdmin(boolean esAdmin) {
        this.esAdmin = esAdmin;
    }

    public String getPagCentro() {
        System.out.println("El pag centro es......: " + pagCentro);
        if(pagCentro == null || pagCentro == "" || pagCentro.isEmpty()){
            //System.out.println("El pag centro es... a la salida1......: " + pagCentro);
            pagCentro = "index";
            //return "index";
        }//else{
            System.out.println("El pag centro es... a la salida2......: " + pagCentro);
            return pagCentro;
        //}
        
    }

    public void setPagCentro(String pagCentro) {
            this.pagCentro = pagCentro;
    }

    public String getPrueba() {
        return prueba;
    }

    public void setPrueba(String prueba) {
        this.prueba = prueba;
    }
    
    public void CambioCentro(String centroPagina){
        this.pagCentro = centroPagina;
        System.out.println("El nuevo valor de pagcentro es: " + pagCentro);
    }
    public String CambioCentroReturn(String centroPagina){
        this.pagCentro = centroPagina;
        System.out.println("El nuevo valor de pagcentro es: " + pagCentro);
        return "app-main";
    }
    
    public String compVerificacionEmail(Integer cuId, Integer cuNumAle){
        try {
            EmailValido = false;
            System.out.println("Email cerificacion 0..> "+cuId+" y "+cuNumAle);
            Usuarios use = (Usuarios)
            em.createNamedQuery("Usuarios.findByIdUsuario").
                    setParameter("idUsuario", cuId).getSingleResult();
            System.out.println("Email cerificacion 1..> "+cuId+" >>>> "+cuNumAle+" vs "+use.getUsuEmailValidado());
            if(use.getUsuEmailValidado() > 0){
                System.out.println("Email cerificacion..> 2");
                if(use.getUsuEmailValidado().equals(cuNumAle)){
                    System.out.println("Email cerificacion..> 3");
                    utx.begin();
                    Usuarios use2 = (Usuarios)
                        em.createNamedQuery("Usuarios.findByIdUsuario").
                                setParameter("idUsuario", cuId).getSingleResult();                    
                    use2.setUsuEmailValidado(0);
                    utx.commit();
                    System.out.println("Email cerificacion..> 4");
                    EmailValido = true;
                    //return true;
                }
                System.out.println("Email cerificacion..> 5");
            }
            System.out.println("Email cerificacion..> 6");
//            FacesContext context = FacesContext.getCurrentInstance();
//            FacesMessage message;
//            if(EmailValido){
//                message = new FacesMessage(FacesMessage.SEVERITY_INFO,
//                    context.getApplication().evaluateExpressionGet(context, "Verificacion correcta!", String.class)
//                        ,null);
//            }else{
//                message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
//                        context.getApplication().evaluateExpressionGet(context, "Verifiacion incorrecta!", String.class)
//                            ,null);
//            }
//            context.addMessage(null, message);
            //return false; 
            return "";
        } catch (NoResultException nre) {
            System.out.println("Email cerificacion..> 7");
            return "";
        } catch (Exception e) {
            System.out.println("Email cerificacion..> 8");
            return "";
        }
    }
    
    
}
